昨天,題目出好了。一篇占卜停在「生成中」,等著每個選項的答案。
Day 09 的時候,我已經讓 A、B、C、D 四份草稿可以一起寫,而且每一份都說得出自己從哪裡來。
今天要處理的,是另一個問題:這四份草稿,什麼時候寫?可以寫幾次?
最直覺的做法,是等使用者留言選了 B,再把 B 這一組交給 AI,請它當場寫一份送出去。
這樣很省事,看起來也很即時。
但它有一個很大的問題:AI 每一次寫出來的東西,都不會完全一樣。
就算題目一樣、牌一樣,第一個選 B 的人,和第十個選 B 的人,收到的解讀也可能不同。這就違反了 Day 01 那個最基本的承諾:同一個選項,每個人收到的是同一份答案。
而且,如果每次都當場寫,我就完全沒有機會在送出去之前先看過。
Macaron 的做法是:在我開始編輯之前,就把 A、B、C、D 四份草稿,一次寫好、一次存起來。
之後使用者來領答案,拿的永遠是存好的那一份。領答案的流程裡,根本沒有「再去問 AI」這個步驟。
同一篇占卜,這一批草稿只能寫一次。已經寫過了,就不會再寫。
今天也把開始寫之前的檢查定清楚了。
四份草稿用的那四包資料,必須是 Day 08 那個正式流程發出來、蓋了章的。而且四份要用同一個 AI、同一版規則、同一版牌義。
更重要的是,在請 AI 寫之前,Macaron 會先回頭,把 Day 07 存好的抽牌紀錄一筆一筆讀出來核對。只要讀回來的跟預期的不一樣,就直接停下來。
**不能先請 AI 寫,再回頭補抽牌的證據。**順序一定是:牌先確定,草稿才開始。
另外還有一個順序很重要。
如果有兩個流程同時啟動,它們可能都會去請 AI 寫,最後同一篇占卜就有了兩批草稿。
所以 Macaron 會先登記:「這一篇,我要開始寫了。」這個登記只能成功一次,而且登記了就撤不掉。登記成功之後,才開始一份一份請 AI 寫。第二個流程來的時候,看到已經有人登記了,就不會再寫一次。
而且不會自動重試。
每一份草稿,都會留下一筆紀錄:它是哪一個選項的、用了哪個 AI、哪一版規則、哪一版牌義、請求的指紋、時間、成功還是失敗、錯誤代碼。
四份都存完之後,Macaron 會把它們全部讀回來,確認四筆都在、順序是 A、B、C、D,然後替整批算一個指紋。
只要有一筆被換掉、順序被打亂、少了一筆,或讀回來不完整,就不算數。
如果四份裡面有一份失敗了,這一批就是「部分失敗」。如果有一份寫出來踩到 Day 10 的紅線,就是「被規則擋下」。
這兩種情況,都會保留已經發生的紀錄,但都不能交給我編輯,也不會自動重跑、不會補造成功。
只有四份全部成功,才會變成可以交給我編輯的草稿。
今天這些,一樣是在離線的狀態下,用一個會回固定內容的假 AI 驗證的。
真的牌義、我的核准、真的 AI 服務、資料庫、Discord,都還沒有接上。所以今天不能說 Macaron 已經寫出了任何一份真的草稿。
但從今天起,Macaron 的答案有了一個固定的來源:寫一次、存起來、讀回來確認過的那一份。
草稿存好了,接下來就輪到我了。明天要處理的是:我要在哪裡修改這些草稿?我改過的東西,又要怎麼安全地回到 Macaron 裡?